@durationCir: 20s;
@duration: 2.5s;
@w: 100px;
@w_b: 20px;

.box {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  &.active {
    .cir,
    .dots {
      animation-play-state: running;
    }
  }
}
.viewBox {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  width: @w;
  height: @w;
}

.cir {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  border-top: @w_b solid #949b7c;
  border-left: @w_b solid #949b7c;
  border-right: @w_b solid #839b7c;
  border-bottom: @w_b solid #949b7c;
  border-radius: @w * 2;
  clip-path: polygon(50% 0%, 100% 0%, 100% 120%, 10% 120%);
  -webkit-clip-path: polygon(50% 0%, 100% 0%, 100% 120%, 10% 120%);
  animation-name: g_ani;
  animation-duration: @durationCir;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-play-state: paused;
}
.dots {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  animation-name: y_ani;
  animation-duration: @duration;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-play-state: paused;
  .dot {
    position: absolute;
    width: @w_b * 1;
    height: @w_b * 1;
    border-radius: @w;
    background: #949b7c;
    &:nth-child(1) {
      top: 0;
      left: 50%;
      margin-left: 0px - @w_b * 0.5;
    }
    &:nth-child(2) {
      top: 50%;
      left: 0;
      margin-top: 0px - @w_b * 0.5;
    }
    &:nth-child(3) {
      bottom: 0;
      left: 50%;
      margin-left: 0px - @w_b * 0.5;
    }
    &:nth-child(4) {
      top: 50%;
      right: 0;
      margin-top: 0px - @w_b * 0.5;
    }
  }
}

@keyframes g_ani {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@keyframes y_ani {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
